package com.qzdsoft.erpcloud.mapper.sys;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.qzdsoft.erpcloud.domain.sys.SysMenuButton;
import com.qzdsoft.erpcloud.vo.sys.MenuInfo;
import com.qzdsoft.erpcloud.vo.sys.SysMenubuttonQueryInfo;
import com.qzdsoft.erpcloud.vo.sys.ZtreeNode;
import com.qzdsoft.vo.TypeInfo;

public interface MenuButtonQueryMapper
{
    /**
     * 查询具有权限的菜单
     * @param uid
     * @return
     */
    List<MenuInfo> queryAuthorizedMenu(Integer uid);
    
    /**
     * 查询指定用户是否具有所有权限
     * @param id
     * @return
     */
    Integer isHasAllFunction(Integer uid);
    
    /**
     * 查询所有菜单
     * @return
     */
    List<MenuInfo> queryAllMenu();
    
    /**
     * 查询具有权限的按钮
     * @param uid
     * @return
     */
    List<TypeInfo> selectAuthorizedButton(Integer uid);

    /**
     * 查询所有按钮
     * @return
     */
    List<TypeInfo> selectAllButton();
    
    /**
     * 查询所有的url
     * @return
     */
    List<String> selectAllUrl();
    
    /**
     * 查询具有权限的url
     * @param uid
     * @return
     */
    List<String> selectAuthorizedUrl(Integer uid);
    /**
     * 菜单管理页面初始化数据查询
     * @param info
     * @return
     */
    List<SysMenuButton> findAllData(SysMenubuttonQueryInfo info);
    
    /**
     * 上级菜单 ztree数据查询
     */
    List<ZtreeNode> findMenuForZtree(@Param("type")Integer type);
    /**
     * 根据角色id查询
     * @param id
     * @return
     */
    List<ZtreeNode> findByRoleUId(@Param("roleId")Integer roleid ,@Param("uId")Integer uid);
    
    List<ZtreeNode> findByRoleId(@Param("roleId")Integer roleid);
}
